package com.kaifamiao.vector;

import java.util.Enumeration;
import java.util.Vector;

/**
 * 1、java.util.Vector类实现了java.util.List接口
 * 2、java.util.Vector内部采用数组存储元素(数组容量按照指定的增量进行扩容)
 * 3、java.util.Vector是线程安全的
 * 4、由 Vector 的 iterator 和 listIterator 方法所返回的迭代器是 快速失败 的
 */
public class VectorTest {

	public static void main(String[] args) {
		
		// 第一个参数 initialCapacity 表示初始容量
		// 第二个参数 capacityIncrement 表示容量的增量
		Vector<String> vector = new Vector<>(2,5);
		System.out.println( vector.size() + " , " + vector.capacity() ); // Vector#capacity()
		
		vector.add( "开发喵" );
		System.out.println( vector.size() + " , " + vector.capacity() );
		System.out.println( vector );
		
		vector.addElement( null ); // Vector#addElement(E)
		System.out.println( vector.size() + " , " + vector.capacity() );
		System.out.println( vector );
		
		vector.add( "喵" );
		System.out.println( vector.size() + " , " + vector.capacity() );
		System.out.println( vector );
		
		String e = vector.elementAt( 2 ); // Vector#elementAt(int)
		System.out.println( e );
		
		vector.insertElementAt( "kaifamiao" , 1 ); // Vector#insertElementAt(E,int)
		System.out.println( vector );
		
		System.out.println( vector.firstElement() ); // Vector#firstElement()
		System.out.println( vector.lastElement() ); // Vector#lastElement()
		
		// vector.iterator();
		
		// vector.listIterator();
		
		// for( int i = 0 ; i < vector.size() ; i++ ) {
			// System.out.println( vector.get( i ) );
			// System.out.println( vector.elementAt( i ) );
		//}
		
		System.out.println( "- - ".repeat( 5 ) );
		
		Enumeration<String> en = vector.elements();
		while( en.hasMoreElements() ) {
			String element = en.nextElement();
			System.out.println( element );
		}

	}

}
